xm: Reuse VDI if location is same
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 15 Oct 2009 07:31:08 +0000 (08:31 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 15 Oct 2009 07:31:08 +0000 (08:31 +0100)
In XenAPI mode, when we start a VM by using xm create command, VDIs
are always automatically created for VBDs.  Once we shut down the
VM, then start the VM again, then VDIs are newly created.  As a
result, a vdi.xml file continues to expand.

This patch reuses VDIs if location of the VDIs is same.

Signed-off-by: Masaki Kanno <kanno.masaki@jp.fujitsu.com>
tools/python/xen/xm/xenapi_create.py

index 903b29d21abccc2ed94578a67e2b3929f4ea1493..6af21188a943d86793508b8fc34096bf695b4a38 100644 (file)
@@ -215,6 +215,16 @@ class xenapi_create:
     def create_vdi(self, vdi):
         log(DEBUG, "create_vdi")
 
+        for ref, record in server.xenapi.VDI.get_all_records().items():
+            location = record["other_config"]["location"]
+            if vdi.attributes["src"].value != location:
+                continue
+
+            # Reuse the VDI because the location is same.
+            key = vdi.attributes["name"].value
+            return (key, ref)
+
+        # Create a new VDI.
         vdi_record = {
             "name_label":       get_name_label(vdi),
             "name_description": get_name_description(vdi),